void AfxDaoInit( ); throw( CDaoException );
Эта функция производит инициализацию DAO. В большинстве случаев нет необходимости вызывать эту функцию самому это сделает первый инициализируемый объект DAO. Если производится инициализация, то должна производиться и деиницализация. Это делает функция:
void AfxDaoTerm( );
Вызываться она должна после того, как все объекты DAO будут разрушены. В DLL, Вы должны вызвать AfxDaoTerm() прежде, чем вызовется ExitInstance().
Пример правильной инициализации и деинициализации в DLL:
SomeExportedInitializeDAO( .. )
{
#ifndef _AFXDLL
AFX_MANAGE_STATE(AfxGetStaticModuleState());
#endif
m_pDB = new CDaoDatabase;
m_pDB->Open(..);
}
SomeExportedDestroyObjectsAndTerminateDAO( .. )
{
#ifndef _AFXDLL
AFX_MANAGE_STATE(AfxGetStaticModuleState());
#endif
m_pDB->Close();
delete m_pDB;
AfxDaoTerm();
}